#include<graphics.h>
#include<stdio.h>
#include<conio.h>

int main()
{
	float height,width;
	width=600;
	height=400;
	initgraph(width,height);

	float ball_x,ball_y,ball_vy,gravity,radius;
	radius=20;
	ball_x=width/4;
	ball_y=height-radius;
	ball_vy=0;
	gravity=0.6;

	float rect_left_x,rect_left_y,rect_height,rect_width,rect_vx;
	rect_height=100;
	rect_width=20;
	rect_left_x=width*3/4;
	rect_left_y=height-rect_height;
	rect_vx=-3;

	int score=0;
	int isBallonFLoor=1;

	while(1)
	{
		if(kbhit())
		{
			char input=_getch();
			if(input==' '&&isBallonFLoor==1)
			{
				ball_vy=-18;
				isBallonFLoor=0;
			}

		}
		ball_vy=ball_vy+gravity;
		ball_y=ball_y+ball_vy;
		if(ball_y>=height-radius)
		{
			ball_vy=0;
			ball_y=height-radius;
			isBallonFLoor=1;
		}
		rect_left_x=rect_left_x+rect_vx;
		if(rect_left_x<=0)
		{   
			score=score+1;
			rect_left_x=width;
			rect_height=rand()%int(height/4)+height/4;
			rect_vx=rand()/float(RAND_MAX)*4-7;
		}
		if((rect_left_x<=ball_x+radius)
			&&(rect_left_x+rect_width>=ball_x-radius)
			&&(height-rect_height<=ball_y+radius))
		{
			score=0;
			Sleep(100);
		}
		cleardevice();
		fillrectangle( rect_left_x,height-rect_height,rect_left_x+rect_width,height);
		fillcircle(ball_x,ball_y,radius);

		TCHAR s[20];
		_stprintf(s,_T("%d"),score);
		settextstyle(40,0,_T("宋体"));
		outtextxy(50,30,s);

		Sleep(10);
	}

	closegraph();
	return 0;
}